7
תגובות

מחפש כיוון?!?!?

פתח Aviway ,
שלום לכולם,
בניתי אתר שהוא אינדקס לצימרים. כל בעל אתר יכול להוסיף לדף הצימר שלו דפים שמתארים שירותים נוספים שהוא נותן (כמו: ארוחת בוקר וכד'). בדף הצימר התבקשתי להוסיף התחתית הדף ניווט לשאר הדפים הנ"ל (דומה לpagination). איך אני אמור לעשות את זה אבל אני רוצה שיופיע לדוג', כפתור ימני מעביר לדף ה"ארוחת בוקר", והכפתור השמאלי מעביר לדף ה"ג'קוזי", ושבניהם יופיע שם הדף הנוכחי.
בנוסף זה צריך להתעדכן לפי הדף שבו נמצא הגולש ז"א שאם הגולש עבר לדף "ארוחת בוקר" אזי הניווט משתנה.

אני מקווה שהצלחתי להסביר את עצמי.

אשמח מאוד לעזרה אין לי מושג איך לעשות את זה.

7 תשובות

avatar ענה intval ב 17 לדצמבר 2011 #

תעשה טבלה של רשימת דפים עבור כל אחד מהצימרים, כשלכל דף יש "order" סדר הופעה.
בתחתית העמוד תשלוף מהמסד את כל העמודים עבור אותו צימר ותציג את את האחד שלפני והאחד שאחרי העמוד הנוכחי.

avatar ענה Aviway ב 17 לדצמבר 2011 #

ואיך אני מציג רק אחד אחרי ואחד לפני?

avatar ענה intval ב 17 לדצמבר 2011 #

תשלוף את כולם למערך, תמצא בו את האחד הנוכחי ובהתאם תציג את האחד לפני והאחד אחרי. כמה כבר עמודים יש לכל צימר? 10? 20?

avatar ענה Aviway ב 18 לדצמבר 2011 #

את זה הבנתי. לכתוב פונקציה שקוראת לכל העמודים מהטבלה בDB, אח"כ לכתוב foreach שיציג את כל הדפים. ואז לבחור להציג רק את הדף שבא לפני העמוד הנוכחי ואת הדף אחריו. השאלה היחידה היא איך אני כותב לו לבחור רק את הדף שלפניו ואחריו. זו הבעיה היחידה שאני לא מבין איך לכתוב.
אשמח אם תפרט יותר.
ובבקשה לא להתעצבן, הרי זה מהות האתר. ללמוד.לא?

avatar ענה intval ב 18 לדצמבר 2011 #

לשלוף רק את מה שלפני ומה שאחרי - זה שני שאילתות.
יכול להיות שיות יעיל לשלוף הכל בשאילתה אחת לפי הסדר ואז לגשת במערך אל אלמנט לפני ואלמנט אחרי. עשוי להיות יותר מהיר, אבל ייקח יותר זכרון. בכל אופן,

לשלוף אחד לפני ככה

SELECT * FROM pages WHERE order < $current_items_order ORDER BY order DESC LIMIT 1


לשלוף אחד אחרי
SELECT * FROM pages WHERE order > $current_items_order ORDER BY order ASC LIMIT 1


אל תשכח להוסיף לתנאי גם שזה עמודים של אותו צימר בלבד.
אף אחד לא מתבעצבן :) התכוונתי לומר שגם אם יש 30 עמודים לכל צימר, לשים אותם במערך זה לא כזה נורא. למרות שגם שני שאילתות קריאה זה גם לא כזה נורא.

במחשבה שניה, אחרי שכתבתי את כל זה, ההפרשים בזמנים בין מערך לשני שליפות יהיו לא כאלה גדולים, לכן תלך פשוט על הדרך הקלה יותר מבין השניים.

avatar ענה Aviway ב 18 לדצמבר 2011 #

עוד שאלה,
אפשר לבצע את זה גם על הID של האלמנט?
שהוא PRIMERY ו AUTO_INCREMENT

avatar ענה intval ב 18 לדצמבר 2011 #

כן, אבל ID לאו דווקא שווה ערך לסדר ההצגה.
זה שאלה שיותר מהר לבדוק מלחכות לתשובה באינטרנט :)